package com.atguigu.lease.common.advice;

import com.atguigu.lease.common.result.ResultCodeEnum;
import lombok.Data;

@Data
/**
 * 自定义租赁异常类，继承自RuntimeException
 * 用于在租赁系统中处理特定的异常情况，提供异常信息和错误代码
 */
public class LeaseException extends RuntimeException{
    // 错误代码，用于标识具体的错误类型
    private int code;

    /**
     * 构造函数，用于创建LeaseException对象
     *
     * @param message 异常信息，描述异常情况
     * @param code 错误代码，标识具体的错误类型
     */
    public LeaseException(String message, int code) {
        super(message);
        this.code = code;
    }

    /**
     * 构造函数，用于根据结果代码枚举创建LeaseException对象
     *
     * @param resultCodeEnum 结果代码枚举，包含错误代码和对应的异常信息
     */
    public LeaseException(ResultCodeEnum resultCodeEnum){
        super(resultCodeEnum.getMessage());
        this.code= resultCodeEnum.getCode();
    }
}

